#ifndef _CALBFORM_H
#define _CALBFORM_H

#include <QMdiSubWindow>
#include "../core/aprcfg.h"

class QLabel;
class QComboBox;
class QPushButton;
class QSpinBox;
class QDoubleSpinBox;
class QTableWidget;
class QFrame;

class CalbForm : public QMdiSubWindow
{
    Q_OBJECT

public:
    CalbForm(QWidget *parent = 0);
	bool getHueList();

protected:
	QFrame* initHueCtrlsLayout();
	QFrame* initDlmCtrlsLayout();
	QFrame* initVlCtrlsLayout();

	void saveCalbSetting();
	void switchResultTable(int type);

	void showHueResult();
	void showDlmResult();
	void showVlResult();

public slots:
    void startCalb();
	void changeItemType(const QString& text);

	void changeVlRange(const QString& text);
	void changeBiasRange(const QString& text);

	void showMasterResult();

	void saveCalbToProg();

private:
/*
    QPushButton * btnStartClb;
    QPushButton * calbName;
    QComboBox 	* itemSelc;

    QTableWidget * calbSettings;
    QTableWidget * calbResults;
*/

	int calb_no;	// 保存当前Item的类型,0:HUE, 1:VL, 2:DLM
	int chn_no;		// 当前item的channel
	citem_t citem;	// 光量项目的索引表
	int itemno;		// 当前光量项目在kinds[0]中的索引,从1开始计数

	QLabel* 		lblCalbName;
	QComboBox* 		cmbItemSelc;
	QPushButton* 	btnStartCalb;
	QPushButton* 	btnManCalb;
	QPushButton*	btnSaveCalb;

	QTableWidget*	table;

	QFrame* hueFrame;
	QFrame* dlmFrame;
	QFrame* vlFrame;

//// hue项目相关控件 //////////////////////////////////////////////////////////
	
	QDoubleSpinBox* dspinRefWavel;
	QLabel*			lblTempData;
	QLabel*			lblFilterData;
	QComboBox*		cmbOfsCancel;
	QSpinBox*		spinCooling;

//// dlm项目相关控件 //////////////////////////////////////////////////////////
	
	QDoubleSpinBox* dspinDlmX;
	QDoubleSpinBox* dspinDlmY;
	QComboBox*		cmbOfsCancelDlm;
	QSpinBox*		spinCoolingDlm;


//// vl项目相关控件 ///////////////////////////////////////////////////////////

	QDoubleSpinBox* dspinRefVl1;
	QDoubleSpinBox* dspinRefVl2;
	QComboBox*		cmbRefVlRange;
	QDoubleSpinBox* dspinRefBias1;
	QDoubleSpinBox* dspinRefBias2;
	QComboBox*		cmbRefBiasRange;
	QDoubleSpinBox*	dspinWaitTime;
	QComboBox*		cmbFilter;
	QDoubleSpinBox* dspinVLimit;
	QComboBox*		cmbOfsCancelVl;	// ???
	QSpinBox*		spinCoolingVl;  // ???
	QSpinBox*		spinCooling2;

};

#endif // _CALBFORM_H
